草庐IT

python - 静态库的ctypes?

全部标签

c# - .Net 在哪里存储泛型类型的静态字段的值?

下面的代码允许我为每种类型存储一个值T:publicstaticclassMyDict{publicstaticTValue;}我可以存储与类型一样多的值,编译器不知道我将使用什么类型。这些静态字段值如何存储以及存储在何处?更新:明明是存储在内存中的,但是我想了解一下这个内存。是堆吗?它是一些特殊的CLR内存吗?怎么称呼?还以这种方式存储了什么?更新2:JITter生成单个实现MyDict对于MyDict的所有引用类型参数.然而,这些值是分开存储的。我想每个类型参数仍然有一些每个类型参数的结构,虽然thwvtable链接到JITtedMyDict,字段是分开的。我说得对吗?

c# - 静态方法中的变量共享

我对静态方法中的变量有疑问。静态方法中的变量是否共享相同的内存位置,还是它们会有单独的内存?这是一个例子。publicclassXYZ{PublicStaticintA(intvalue){intb=value;returnb;}}如果3个不同的用户调用执行方法AXYZ.A(10);XYZ.A(20);XYZ.A(30);同时。每次调用的返回值是多少?XYZ.A(10)=?XYZ.A(20)=?XYZ.A(30)=? 最佳答案 它们仍然是局部变量——它们不在线程之间共享。它们在静态方法中这一事实没有任何区别。如果你使用一个静态变量作

c# - 如何判断 Type 是否是静态类?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Determineifatypeisstatic重复Determineifatypeisstatic是否有我可以检查的属性/属性来查看System.Type是否是静态类?我可以通过测试Type有静态方法,并且除了从System.Object继承的实例方法之外没有实例方法,我可以间接地做到这一点,但是它没有感觉干净(我偷偷怀疑我遗漏了什么,这不是静态类的足够严格的定义)。在明确告诉我这是一个静态类的类型上,我是否遗漏了什么?或者staticclass是c#语法糖,没有办法在IL中表达它?谢谢体重

c# - 静态事件处理程序和非静态事件处理程序有什么区别

这两者有很大区别吗? 最佳答案 语义上没有区别,但是使用静态事件处理程序可能(如果您不小心)导致内存泄漏。参见thisarticle了解更多信息。我自己遇到过这个问题,尝试使用静态事件处理程序来保持应用程序范围内的数据源是最新的;事件处理程序阻止我的BindingSource组件被释放,导致各种奇怪的问题... 关于c#-静态事件处理程序和非静态事件处理程序有什么区别,我们在StackOverflow上找到一个类似的问题: https://stackoverf

c# - Web 应用程序中的静态变量

我可以在我的网络应用程序中使用静态变量吗?static的替代品是什么?当我在页面中使用静态变量并且多个用户使用该应用程序时,它会产生冲突数据(不正确的数据)。使用静态成员有什么限制?静态成员是否在内存中共享? 最佳答案 考虑将您的共享变量存储在HttpApplication对象或Cache对象中。但是,如果您尝试为每个用户单独存储值,则应将这些值存储在Session变量中。Asp.Net中的静态变量在w3svc.exe进程的内存空间中共享,并且不是线程安全的。应用程序的任何用户都可以访问和修改它们。这可能会导致不需要的修改,除非您围

c# - 将方法转换为静态方法时的内存使用

我开始使用Resharper,它指示何时可以将方法设为静态。将几百个方法转换为静态方法会在很长一段时间内增加内存占用吗? 最佳答案 否-更改为静态方法对内存没有影响。第一次引用类型(无论是静态还是非静态)时,将初始化任何静态成员并运行静态构造函数。但是,如果您只是考虑将方法从非静态方法切换到静态方法,这对垃圾回收或总内存占用量没有影响。如果将类成员更改为静态成员,您只需担心内存占用量会发生变化。在这种情况下,一旦类型被访问,静态字段将保持根基,并且不会被GC收集。这通常只在必要时进行,并且是按设计-您将成员设置为静态的,因为您希望它

C#:使用私有(private)静态成员进行单元测试?

我有一个类的结构是这样的:privatestaticDictionary_historyManagers=newDictionary();让我们说2种方法:publicvoidAddSth(){_historManagers.Add(newContract(),newPriceHistoryManager());}publicintCountDic(){return_historyManagers.Count();}问题:当运行单元测试时,没有办法“重置”字典,当我用类的单独实例创建多个单元测试时,“CountDic”会给出不可预测的结果,我无法测试监听。问题:这通常被认为是一种“坏”

c# - 使用带有静态类的语句在 visual studio 2015 CTP 中不起作用

我为我的一个C#6.0示例应用程序编写了以下代码。它在VisualStudio2015预览版中运行良好。但是现在当我下载了一段时间之前发布的最新版本的VisualStudio2015时。(http://blogs.msdn.com/b/bharry/archive/2015/01/16/visual-studio-2015-ctp-5-is-available.aspx)它停止工作了。下面是一个代码。usingSystem.Console;namespaceStaticClassUsing{classProgram{staticvoidMain(string[]args){WriteL

c# - 如何通过反射执行带有可选参数的私有(private)静态方法?

我有一个带有可选参数的私有(private)静态方法的类。我如何通过反射从另一个类调用它?有一个类似的question,但它不涉及静态方法或可选参数。publicclassFoo{privatestaticvoidBar(stringkey=""){//dostuff}}如何调用Foo.Bar("test")和Foo.Bar()(例如,不传递可选参数)? 最佳答案 C#中的可选参数值是通过在调用点注入(inject)这些值来编译的。IE。即使你的代码是Foo.Bar()编译器实际上生成了这样的调用Foo.Bar("")在查找方法时,

c# - 静态链接的优势

我最近在这里读到一个关于静态和动态链接的问题,这让我想起了一些关于它的问题。从那篇文章中,我可以看出技术上的区别是什么(直接包括目标文件内容而不是仅仅指向它),但我想更多地了解这样做的优缺点。不久前,我的一位编程多年的friend感叹C#不是静态链接,并说这是他最希望future版本具备的功能。不幸的是我是新手,并不真正理解这种说法。谢谢指教! 最佳答案 静态链接的优点是它消除了对库的外部依赖——即你正在使用的库的行为永远不会因为有人改变了磁盘上的库而改变。这也是静态链接的缺点之一;如果操作系统发生变化并且需要新版本的库才能正常使用